package org.stream.answerduel.vo;

import lombok.Data;

import org.hibernate.validator.constraints.Range;
import org.stream.answerduel.vo.Message.Message;

/**
 * 功能描述：存储用户详情的实体类
 *
 * @Auther: 苏建誉
 * @Date: 2019/7/9 22:48
 */
@Data
public class AnswerDetailsVo{
    /**
     * 玩家id
     */
    private Long userId;
    /**
     * 对手玩家id
     */
    private Long rivalId;

    /**
     * 房间号
     */
    private Long roomId;

    /**
     * 表示这道题是否已经开始答
     */
    private boolean canAnswer = false;
    /**
     * 玩家选择，0表示还未答题，1-4对应ABCD，-1表示错过了答题时间
     */
    @Range(min = 0, max = 4)
    private int choice;
    /**
     * 正确答案
     */
    @Range(min = 1, max = 4)
    private int answer = 1;
    /**
     * 题目id
     */
    private String subjectId;
    /**
     * 题目
     */
    private SubjectVo subjectVo;
    /**
     * 玩家作答时间
     */
    @Range(min = 0, max = 10000)
    private long time;
    /**
     * 玩家得分
     */
    @Range(min = 0, max = 10)
    private int score;

    /**
     * 这道题开始答题的时间截
     */
    private Long startTimestamp = 0L;

    /**
     * 这道题作答的时间截
     */
    private Long endTimestamp = 0L;

    //用户作答，计算答题花费的时间
    public void setEndTimeStamp(long endTimestamp)
    {
        this.endTimestamp = endTimestamp;
        time = endTimestamp - startTimestamp;
    }
}
